#ifndef __CC_H
#define __CC_H

/**
 *  @brief  有关变量类型的定义 NXP官方SDK的一些移植文件会用到   自定义一些数据类型供库文件使用
 */

#define FORCEDINLINE  __attribute__((always_inline))                //表示使用GNU编译器
#define __ASM            __asm                                      /*!< asm keyword for GNU Compiler */
#define __INLINE         inline                                     /*!< inline keyword for GNU Compiler */
#define __STATIC_INLINE  static inline

/* IO definitions (access restrictions to peripheral registers) */
#define   __I     volatile const       /*!< Defines 'read only' permissions */
#define     __O     volatile             /*!< Defines 'write only' permissions */
#define     __IO    volatile             /*!< Defines 'read / write' permissions */

/* following defines should be used for structure members */
#define     __IM     volatile const      /*! Defines 'read only' structure member permissions */
#define     __OM     volatile            /*! Defines 'write only' structure member permissions */
#define     __IOM    volatile            /*! Defines 'read / write' structure member permissions */


typedef     signed char                         int8_t;
typedef     signed short int                    int16_t;
typedef     signed int                          int32_t;

typedef     unsigned char                       uint8_t;
typedef     unsigned short int                  uint16_t;
typedef     unsigned int                        uint32_t;
typedef     unsigned long long                  uint64_t;

typedef     signed char                         s8;
typedef     signed short int                    s16;
typedef     signed int                          s32;
typedef     signed long long int                s64;

typedef     unsigned char                         u8;
typedef     unsigned short int                    u16;
typedef     unsigned int                          u32;
typedef     unsigned long long int                u64;


#define     ON      1
#define     OFF     0

#endif  //__CC_H